home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Belgian Amiga Club - ADF Collection
/
BS1 part 26.zip
/
BS1 part 26
/
SB prof editor 2.03 germ^1.adf
/
liesmich.doc
< prev
next >
Wrap
Text File
|
1987-02-25
|
10KB
|
199 lines
Liesmich
========
In diesem Dokument finden Sie Informationen über Features von Superbase
2, die in letzter Sekunde in das Programm eingebaut wurden und im
Handbuch nicht mehr dokumentiert werden konnten.
Wenn Sie diese Datei von der Workbench aus (durch Anklicken des Icons)
geladen haben, können Sie den Text mit folgenden Tastaturbefehlen
durchblättern:
Leertaste: eine Seite abwärts, Return-Taste: eine Zeile abwärts,
Taste B: eine Seite nach oben, Taste U: eine Zeile nach oben.
Wenn Sie den Texteditor von Superbase verwenden, nehmen Sie statt dessen
die Cursortasten oder die Rollbalken an der Seite des Fensters.
Unterstützung der RAM-Disk (Amiga)
Wenn Sie ein Programm in Verbindung mit der RAM-Disk nutzen wollen,
müssen Sie das Programm normalerweise zuerst in die RAM-Disk kopieren.
In Superbase 2 brauchen Sie das nicht. Wenn Sie beim Öffnen einer Datei
in Superbase 2 die Laufwerkskennung RAM: angeben, wird die entsprechende
Datei automatisch aus dem aktuellen Verzeichnis in die RAM-Disk geladen,
wenn sie nicht schon vorhanden und zugleich geöffnet ist.
Ähnliches gilt auch beim Speichern einer Datei. Superbase fragt Sie, ob
die Datei in das aktuelle Verzeichnis kopiert werden soll, also auf die
Diskette oder die Festplatte von der sie geladen wurde. Wenn Sie OK
anklicken, wird dies ausgeführt. Wenn Sie CANCEL anklicken, wird die
Datei nicht zurückkopiert und Superbase fragt Sie, ob die sich auf der
RAM-Disk befindliche Kopie gelöscht werden soll. Klicken Sie nochmals
CANCEL an, wenn Sie das nicht möchten.
Achtung: Wenn Sie die Datei selber auf die RAM-Disk kopiert haben (wenn
Sie diese Arbeit also nicht Superbase überlassen haben), dann fragt
Superbase auch nicht, ob es die Datei zurückkopieren soll. Stellen Sie
sich beispielsweise vor, auf der Diskette in Laufwerk DF1: befindet sich
eine Datei namens "Adressen" und das aktuelle Verzeichnis ist DF1:. Um
die Datei von der RAM-Disk her zu öffnen, wählen Sie die Option
Öffnen, Datei im Projekt-Menü und geben dann ein:
RAM:Adressen
Jetzt können Sie die Datei ganz normal bearbeiten - Daten lesen,
editieren, Datensätze löschen usw. - aber eben alles sehr viel
schneller, weil die Zugriffe auf die RAM-Disk schneller ablaufen als
auf ein Diskettenlaufwerk. Vergessen Sie am Ende der Arbeitssitzung
nicht, die Datei zu schließen, denn nur dann werden die von Ihnen
vorgenommenen Änderungen auch auf Diskette gespeichert (in dem
Verzeichnis, von dem die Datei ursprüngliche geladen wurde). Das
funktioniert übrigens auch mit anderen RAM-Disks, zum Beispiel VD0:
oder VDK:.
LOOKUP
In Kapitel 2 befindet sich ein Abschnitt, der die zwei Arten beschreibt,
wie die LOOKUP-Funktion in der Dateidefinition benutzt werden kann. Die
zweite Möglichkeit - der Gebrauch von LOOKUP für Berechnungen über
mehrere Dateien hinweg - ist mißverständlich und bedarf der Änderung.
In diesem Abschnitt beschreiben wir zuerst das Problem und liefern dann
eine Lösung dafür.
Die Berechnung über mehrere Dateien verwendet ein Berechnungs-Formular
in Kombination mit LOOKUP, um Daten aus anderen Dateien zu holen. Das
Handbuch gibt Ihnen ein Beispiel dazu, wie zwei Felder, nämlich
Bestellnummer und Einzelpreis, in einer Bestellungs-Datei verwendet
werden. Mit dem Bestellnummer-Feld ist folgende Überprüfungsformel
verbunden:
LOOKUP (Bestellnummer.Bestellung,Bestellnummer.Bestand)
Wenn im Bestellnummer-Feld neue Daten eingetragen werden, prüft die
Formel, ob sie in der Bestands-Datei vorhanden sind. Dabei ruft sie auch
den Datensatz in der Bestands-Datei (die die gleichen Nummern enthält)
auf. Laut Handbuch können Sie folgende Berechnungs-Formel verwenden, um
den entsprechenden Einzelpreis von der Bestands-Datei in das Einzelpreis-
Feld der Bestellungs-Datei einzulesen:
Einzelpreis.Bestand
Diese Formel wird mit dem Einzelpreis-Feld in Bestellungs-Datei ver-
bunden. Diese Anleitung funktioniert perfekt, wenn Sie neue Daten
eintragen. Beim Editieren bereits existierender Daten können allerdings
Probleme auftauchen. Nehmen wir an, daß der Cursor im Bestellnummer-Feld
aktiv ist; wenn Sie nun ESC drücken und eine neue Bestellnummer eingeben,
wird die LOOKUP-Formel ausgeführt und der korrekte Datensatz in der
Bestand-Datei (der zweiten Datei) selektiert. Der Wert, der in das
Einzelpreis-Feld eingelesen wird, ist auch korrekt.
Aber manchmal liefert die Formel das falsche Ergebnis. Wenn Sie das
Einzelpreis.Bestellungen-Feld editieren, ohne den Inhalt des Bestell-
nummer.Bestellungen-Felds zu ändern, wird LOOKUP nicht ausgeführt und der
richtige Datensatz in der zweiten Datei nicht ausgewählt. Die Berechnungs-
formel, die mit dem Einzelpreis.Bestellungen-Feld verbunden ist, holt
dabei immer neue Daten aus der Bestands-Datei. Da aber der aktuelle
Datensatz in der Bestands-Datei seit der letzten Änderung nicht
modifiziert wurde, sind die darin enthaltenen Daten für den aktuellen
Bestellungen-Datensatz nicht geeignet.
Die Lösung des Problems liegt darin, ein weiteres LOOKUP in die
Berechnungsformel zu integrieren, das einen ternären Operator benutzt.
Die Formel, die mit den Einzelpreis.Bestellungen verbunden ist, könnte
also so aussehen:
LOOKUP (Bestellnummer.Bestellung,Bestellnummer.Bestand)?
Einzelpreis.Bestellnummer:0
Diese Formel bewirkt, daß immer dann ein LOOKUP in der Bestand-Datei
gemacht wird, wenn neue Daten ins Einzelpreis.Bestellungen-Feld einge-
tragen werden. Zuerst wird geprüft, ob die Bestellnummer im aktuellen
Datensatz des Bestellungen-Felds in der Bestands-Datei vorhanden ist.
Falls ja, ruft sie den entsprechenden Eintrag in der Bestands-Datei auf.
Wenn die durch den ternären Operator ausgedrückte Bedingung erfüllt wird,
wird der erste Wert nach dem Fragezeichen - das heißt der Inhalt des
Einzelpreis.Bestand-Felds - dem Einzelpreis.Bestellungen-Feld zugewiesen.
Wenn die Bedingung nicht wahr ist, wird der zweite Wert - in diesem Fall
0 - zugewiesen. Es liegt ganz bei Ihnen, was Sie unternehmen, wenn LOOKUP
nicht erfolgreich ist. Sie können zum Beispiel in einem String-Feld eine
Fehlermeldung erscheinen lassen:
LOOKUP (Bestellnummer.Bestellungen,Bestellnummer.Bestand)?
Beschreibung.Bestand: "Fehler"
Diese Formel wird dem Beschreibungs-Feld in der Bestellungs-Datei zuge-
ordnet. Falls die Bestellnummer in der Bestand-Datei nicht existiert,
weist sie dem Feld den String "Fehler" zu.
Andererseits könnten Sie auch eine Formel definieren, die den Inhalt des
Beschreibungs-Felds bei Auftreten eines Fehlers nicht ändert:
LOOKUP (Bestellnummer.Bestellung,Bestellnummer.Bestand)?
Beschreibung.Bestand:Beschreibung.Bestellung
Verschiedenes
* Wenn Sie versuchen, eine Zeile zu drucken, die länger ist als die in
den Druckeroptionen von Superbase eingestellte Zeilenlänge, gibt Super-
base die Steuerzeichen für Wagenrücklauf und Zeilenvorschub aus, wenn die
höchstzulässige Zeilenlänge erreicht ist.
* Besitzer eines Amiga können im Optionsrequester eine Drucker-
Initialisierungssequenz definieren und so die gewünschten
Charakteristikaund Modi einstellen. Diese Steuersequenz wird jedesmal,
wenn Sie mit Superbase drucken an den Drucker geschickt. Wenn eine
solche Sequenz eingerichtet wurde, schickt Superbase die normalerweise
bei Druckerzu-griffen ausgesendeten Codes für "Perforationssprung aus"
und "Seiten-länge einstellen" nicht mehr an den Drucker.
* Mit den Formatparametern für Ausgaben (BF, UL und IT) können Sie inner-
halb eines Reports oder in den Ausgaben einer Abfrage verschiedene
Schriftarten einstellen. Wenn Sie zusätzliche Druckparameter angeben
möchten, fügen Sie mit der Funktion CHR$ die entsprechenden Steuerzeichen
für den Drucker ein. Für einen Report, der im Formulareditor erstellt
wurde,müssen Sie die Steuersequenzen im Reportprogramm eingeben. Bei
Abfragen geben Sie sie einfach in der Felderzeile der Abfrage ein. Auf
einigen Druckern schaltet zum Beispiel die Sequenz 27,14 um auf doppelt
hohen Druck während der Steuercode 20 ihn wieder auschaltet. Wenn Sie in
einer Abfrage die Daten eines Feldes besonders groß darstellen möchten,
müßten Sie für so einen Drucker folgende Felderzeile schreiben:
Vorname, Nachname, CHR$(27);CHR$(14);Stadt;CHR$(20), Strasse
Es kann allerdings vorkommen, daß die printer device einige Steuerzeichen
falsch interpretiert. Wenn das passiert, schalten sie im Optionenrequester
Direktdruck ein. Dadurch umgehen Sie den Interpreter.
* Dateinamen: Benutzen Sie keines der Zeichen ? # / ; oder das Leer-
zeichen in Dateinamen. Wenn ein Dateiname einem Befehl wie OPEN FILE als
Argument übergeben wird, muß er in Anführungszeichen gesetzt werden.
Wenn ein Dateiname aber nur als Zusatz zu einem Feldnamen dient (zum
Beispiel name.kunden) muß er nicht in Anführungszeichen stehen. Die Aus-
nahme von der Regel ist, wenn er andere als alphanumerische Zeichen ent-
hält (alles, was nicht in den Bereichen a-Z oder 0-9 liegt). Wenn Sie mit
Requestern arbeiten, fügt Superbase die nötigen Anführungszeichen ein,
aber wenn Sie selber Eingaben in die Befehlszeilen vornehmen, müssen Sie
an diese Regel denken.
* Die Steuersequenz für Zeilenschaltung ist auf dem Amiga
normalerweise CHR$(10) (Zeilenvorschub). Bei den meisten anderen Computern
und auch in Superbase ist die Sequenz aber CHR$(13) CHR$(10), also ein
Wagenrücklauf gefolgt von einem Zeilenvorschub. Um die Kompatibilität mit
dem Editor ED zu gewährleisten, kann man den Wagenrücklauf (CHR$(13))
unterdrücken, indem man in der Tool Types Liste der Icondatei von Superbase
RETURN=OFF eingibt. Diese Liste erscheint auf dem Bildschirm, wenn Sie
zuerst das Icon von Superbase einmal anklicken und dann die Info-Option
der Workbench aufrufen.